-- @Author: 作者QQ381990860
-- @Date:   2021-11-25 16:27:42
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-10-18 22:56:54

local 资源类_加载 = class()
local aaaa = require("gge纹理类")
local aaab = require("gge精灵类")
local aaac = require("Fmod类")
local bbbb = require("Script/Resource/动画类")
local bbbb1 = require("Script/jm/动画类")
local cccd = require("gge图像类")
local yq = 引擎

function 资源类_加载:初始化()
    self.wdf = {}
    self.char = ffi.new('char[10485760]')
  self.p = tonumber(ffi.cast("intptr_t",self.char))
end

function 资源类_加载:打开()
引擎.添加资源(程序目录..'mhgl1_3.dll',"381990860qq")
引擎.添加资源(程序目录..'mhgl1_4.dll',"381990860qq") -----------已删文件
引擎.添加资源(程序目录..'mhgl1_5.dll',"381990860qq")------------已删文件
引擎.添加资源(程序目录..'shop.dll',"381990860")------------已删文件
引擎.添加资源(程序目录..'res3.npk',"qijipoqjrf去打服晶清qwe111诀qok@#@￥123213wqeo")
引擎.添加资源(程序目录..'res1.npk',"!@#!@58855gfgf!@#@!@!@fggdfg64645!!!@@#")
引擎.添加资源(程序目录..'res4.npk',"!@##$gghg55@!##$@ghfgh555ytnb88trtrtuiu!@#@#@$#@$@#$!")
引擎.添加资源(程序目录..'lib/fmod2.dll',"1723624443阿斌")
引擎.添加资源(程序目录..'scai.npk',"!@#$%hghg8521@!fgffgh6665!!@#@$#6555gfgg")
引擎.添加资源(程序目录..'res5.npk',"ggfg5665!@#$!@55fgjh5555erererrygdfgfgfgfgfg")
引擎.添加资源(程序目录..'mhgl1_2.dll',"daidai2868780478")
引擎.添加资源(程序目录..'shop1.dll',"daidai2868780478")
引擎.添加资源(程序目录..'adminas.dll',"daidai2868780478")
引擎.添加资源(程序目录..'res6.npk',"8888889999")
引擎.添加资源(程序目录..'sucai.dll',"Chubeichen2!")
local files = {
"JM.dll",
"UI.dll",
"ZY.dll",
"ZHS.dll",
"item.dll",
'WP.dll',
'WP1.dll',
"smap.dll",
"JS.dll",
"sound.dll",
"sound1.dll",
"llm.dll",
"BJ.dll",
"zdtb.wdf",
"sx.wdf",
"baobao.dll",
"ldjm.wdf",
"whe.dll"
}
local filesx = {
"uisc.wdf"
    }
    for n=1,#filesx do
    local __wdf1 = require("script/jm/WDF")
self.wdf[filesx[n]] = __wdf1(string.format("%s/%s",程序目录.."lib/",filesx[n]))
    end

    local __wdf = require("script/Resource/WDF")
    local format = string.format
    local a = 程序目录.."lib/"
    for n=1,#files do
    self.wdf[files[n]] = __wdf(format("%s/%s",a,files[n]))
        CacheFile[files[n]] ={}
    end
    CacheFile["MAX.7z"] ={}
    CacheFile["resource"] ={}
    CacheFile["fmod2.dll"] ={}
   -- CacheFile["baobao.dll"] ={}
end

function 资源类_加载:取偏移(file,id)
    return self.wdf[file]:读偏移(id)
end

function 资源类_加载:读数据(file,id)
    return self.wdf[file]:读数据(id)
end

--function 资源类_加载:载入(文件,类型,文件号,音量,附加,fs,fs1)
function 资源类_加载:载入(文件,类型,文件号,缓存)
    if 类型 == "网易WDF动画" then
            if 文件 =="MAX.7z" or 文件=="fmod2.dll"then
                local 临时 =引擎.资源取文件(文件号..'.was')
                local a=ffi.cast("void*",临时)
                local b=引擎.资源取大小(文件号..'.was')
                local ddd =bbbb(a,b,文件,文件号,缓存)
                引擎.资源释放(临时)
                return ddd
                elseif 文件 =="uisc.wdf" then
                    if 文件号 ==nil then
            error(string.format("当前文件地址=%s文件号资源为空",文件 ))
            end
            local a,b=self.wdf[文件]:取文件(文件号+0 or 0xF51371AA)
            return bbbb1(a,b,文件,文件号,缓存)
            else
                if 文件号 ==nil then
                error(string.format("当前文件地址=%s文件号资源为空",文件 ))
            end
                local a,b=self.wdf[文件 or "JM.dll" ]:读数据(文件号+0 or 0xF51371AA)
                return bbbb(a,b,文件,文件号,缓存)
          end
        elseif 类型 == "图片" then
            return aaab(aaaa(文件))
        elseif 类型 == "音乐" then
            return aaac(文件,2,nil,nil,0 or 0)
        elseif 类型 == "网易WDF动画s" then
            return bbbb(文件)
        elseif 类型 == "加密图片" then
            local a,b=引擎.资源取文件(文件),引擎.资源取大小(文件)
            local c=aaaa(a,b)
            引擎.资源释放(a)
            return   aaab(c)
        elseif 类型 == "动画" then
            local 临时 =引擎.资源取文件(文件..'.was')
            local a=ffi.cast("void*",临时)
            local b=引擎.资源取大小(文件..'.was')
            local ddd =bbbb(a,b,"resource",文件)
            引擎.资源释放(临时)
            return ddd
        end
end

return 资源类_加载